[レポート] SEC322: AWS Lambda をセキュリティチームとして利用 #reinvent
SEC322-R - [REPEAT] Using AWS Lambda as a Security Team
Operating a security practice on AWS brings many new challenges and opportunities that have not been addressed in data center environments. The dynamic nature of infrastructure, the relationship between development team members and their applications, and the architecture paradigms have all changed as a result of building software on top of AWS. In this session, learn how your security team can leverage AWS Lambda as a tool to monitor, audit, and enforce your security policies within an AWS environment.
セッション
- Event Drivenな仕組みを使って通知させる
- 通知させる仕組みの構成
- CloudWatch -> Metric -> Alerms -> SNS -> AWS Lambda
- SNSではなく、直接AWS Lambda
- Logsのサブスクライブで連携させることのできるサービス群
- Elasticsearch
- Kinesis
- AWS Lambda
Event Driven - Logs
以下がLogsでの構成例
- AWS CloudTrail
- AWS CloudTrail -> CloudWatch Logs -> AWS Lambda
- VPC Flow Logs
- VPC Flow Logs -> CloudWatch Logs -> AWS Lambda
- Logからの利用用途としては
- Alerting
- Detecting
Event Driven - Metrics
以下がMetricsでの構成例
- AWS WAF
- AWS WAF -> CloudWatch Alarms -> SNS -> AWS Lambda
- AWS Shield
- AWS Shield -> CloudWatch Alarms -> SNS -> AWS Lambda
- メトリクスからの利用用途としては
- SQL Injection Alarm
- Lambda 側の実装はログを吐き出すシンプルな構成
- SQL Injection Alarm
Event Driven - Events
- Macie
- Macie -> CloudWatch Events -> AWS Lambda
- Amazon GuardDudy
- Amazon GuardDudy -> CloudWatch Events -> AWS Lambda
Hands off
- EC2インスタンスで起きる問題がおきるとしたら?
- 非同期実行コマンド
- SSH / RDPを必要としない
- コマンドと出力ログ
Event Driven Security Architectures
Lambda for Cloud Security at Dow Jones
- マルチアカウントでのセキュリティ
- 自動化
- 中央集権
- 低リスク
- 簡単に使える
- フレキシブル
- スケーラブル
Lambda Makes Redwood Dynamic
- パッチの更新
- 強制的に反応させる
- 新しい開発アカウントの作成
CloudWatch LogsのLambdaのメトリクスで作成されたユーザーを可視化する
Multi-Account Security Patterns Using Lambda
Amazon CloudWatch Events Busを使ってマルチアカウントのイベントを検知する
AWS Config & Config Rules
Configでルールを作成し、次に AWS Config Aggregator を作成する
開始方法
CloudFormation StackSetsを使って、別リージョン、別アカウントに OrganizationCloudTrail
を展開させる
Lambdaのコードは以下の処理を記載
boto3
のsts
からassume_role
で別アカウントから Assume Role- EC2 APIから decsribe しているEC2を取得し、そのインスタンスの状態を取得する
これを行うと、中央集権のアカウントで別アカウントのEC2の起動の様子を取得できる
まとめ
複数アカウントにまたがる状態の変更を、 AWS Config 、 AWS Config Aggregator を更生することで、EC2のインスタンスの状態変更など、セキュリティに関わる情報を AWS Lambda で取得させることで、セキュリティチームとして運用されている方法が話されていました。